Cloud architectures are used in cloud computing and cloud storage systems for offering infrastructure-as-a-service (IaaS) cloud services. Examples of cloud architectures include the VMware vCloud Director® cloud architecture software, Amazon EC2™ web service, and OpenStack™ open source cloud computing service. IaaS cloud service is a type of cloud service that provides access to physical and/or virtual resources in a cloud environment. These services provide a tenant application programming interface (API) that supports operations for manipulating IaaS constructs such as virtual machines (VMs) and logical networks. However, the use of such public cloud services is typically kept separate from the use of existing computing resources in data centers managed by an enterprise.
With an increasing trend in migrating data centers to cloud platforms, a hybrid model has been developed that combines public cloud services and traditional on-premise data center computing resources. Such hybrid cloud computing systems permit workloads, such as virtual machines, to be rapidly moved from the data center to the cloud. Network extension, in which networks are created that stretch across both the data center and the cloud, enables seamless workload migration by allowing endpoint network configuration and connections to existing networks in the data center to be kept when workloads are moved to the cloud. However, traditional network extension can result in undesirable traffic patterns such as tromboning, in which traffic between sources and destinations that coexist within the cloud is routed from the cloud to the physically-separate data center and then back again to the cloud.